package edu.sias.hyznxfapi.controller;


import edu.sias.hyznxfapi.language.docTranscription.iflytek.SpeedTranscriptionMain;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 录音文件转文字
 */
@RestController
@RequestMapping("/xfapi/docTranscription")
public class DocTranscription {
    @PostMapping()
    public String translationVideo(@RequestParam("file") MultipartFile file) throws Exception {
        String message = "";
        try {
            // 检查文件夹是否存在，不存在则创建
            File folder = new File("C:/video");
            if (!folder.exists()) {
                folder.mkdir();
            }

            // 获取原始文件名
            String originalFileName = file.getOriginalFilename();
            // 获取文件的扩展名
            String extension = originalFileName.substring(originalFileName.lastIndexOf("."));

            // 创建日期时间格式
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
            // 获取当前时间
            String timeStamp = dateFormat.format(new Date());

            // 构建新的文件名（时间戳 + 原始文件名）
            String newFileName = "audio_" + timeStamp + extension;
            // 构建文件保存路径
            File saveFile = new File(folder, newFileName);
            System.out.println("文件保存路径：" + saveFile.getAbsolutePath());

            // 将上传的文件保存到服务器
            file.transferTo(saveFile);
            try {
                String dd = new SpeedTranscriptionMain().dd(saveFile.getAbsolutePath());
                message = dd;
            }catch (Exception e){
                message = "服务器出小差了，请联系工作人员！";
            }
        } catch (IOException e) {
            message = "上传失败";
        }

//        String dd = new SpeedTranscriptionMain().dd("D://11//audio_sample_little.wav");
        return message;
    }
}
